﻿using System;
// 被声明为abstract的抽象类不能被实例化。
// 只有抽象类的具体实现子类才能被实例化。
// 抽象类中可以定义抽象成员，抽象成员和虚方法相似，但抽象成员不提供默认的实现。
// 实现必须由子类提供，除非子类也被声明为抽象类：
namespace _035_抽象类和抽象成员
{
    public abstract class Asset
    {
        // 注意实现为空
        public abstract decimal NetValue { get; }
    }

    public class Stock : Asset
    {
        public long ShareOwned;
        public decimal CurrentPrice;

        // 像虚方法一样重载
        public override decimal NetValue
        {
            get { return CurrentPrice * ShareOwned; }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}
